Anche se ogni macchina ha un linguaggio Assembly diverso, i processi di assemblaggio, da una macchina all'altra, sono abbastanza simili da rendere possibile una descrizione in termini generali.
L'assemblaggio è un procedimento sequenziale che esamina, riga per riga, il codice sorgente Assembly, traducendo ciascuna riga in un'istruzione del linguaggio macchina:
Traduce i codici mnemonici delle istruzioni nei corrispondenti codici binari.
Traduce i riferimenti simbolici (variabili, etichette di salto, parametri) nei corrispondenti indirizzi numerici.
Poiché le etichette di salto generano il problema dei riferimenti in avanti (ossia, riferimenti ad etichette successive o contenute in altri file), l'assemblatore deve leggere il programma sorgente due volte.
Ogni lettura del programma sorgente è chiamata passo e l'assemblatore è chiamato traduttore a due passi.